﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BLGPS
{
    public abstract class ParserBase
    {
        public Movimiento Parse(string paquete)
        {
            Movimiento mov = BuildBase(paquete);
            FillData(mov, paquete);
            return mov;
        }
        protected abstract void FillData(Movimiento mov, string paquete);

        protected Movimiento BuildBase(string paquete)
        {
            Movimiento mov = new Movimiento(); 
            mov.Paquete = paquete;
            mov.FechaAlta = DateTime.Now;            
            return mov;
        }

    }

    public static class ParserProvider 
    {
        public static ParserBase GetParser(TipoDispositivo tipo)
        {
            switch ((int)tipo.Id)
            {
                case 1:
                    return new Parser1();                     
                default:
                    break;
            }

            return null;
        }
    
    }

    public class Parser1 : ParserBase
    {
        protected override void FillData(Movimiento mov, string paquete)
        {
            /*
            Pasear estos campos:
                          
            mov.Bearing;
            mov.Fecha;
            mov.Latitud;
            mov.Longitud;
            mov.Velocidad;*/
        }
    }
}
